home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
compile_to_jvm18.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
42KB
|
2,103 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "compile_to_jvm.h"
/*No:TMP_NAME.fz_once*/
T6 r112look_in(T0* a1){
T6 R=0;
T2 _i=0;
_i=(((T73*)a1))->_upper/*8*/;
while (!((R)||((_i)==(0)))) {
R=r7same_as((T7*)(r73item(((T73*)a1),_i)),oBC112tmp_string);
_i=(_i)-(1);
}
return R;
}
/*No:TMP_NAME.fz_old*/
/*No:TMP_NAME.fz_check*/
T0* r112start_position(T112* C){
T0* R=NULL;
{T59*n=malloc(sizeof(*n));
*n=M59;
r59make(n,(C)->_li/*4*/,(C)->_co/*8*/);
R=(T0*)n;
}
return R;
}
T0* r112to_string(T112* C){
T0* R=NULL;
/*[IF*/
if(((C)->_unique_string_memory/*0*/)==((void*)(NULL))){
R=r86item(oBC112tmp_string);
C->_unique_string_memory=R;
}
else{
R=(C)->_unique_string_memory/*0*/;
}
/*FI]*/
return R;
}
/*No:TMP_NAME.fz_if*/
T0* r112to_prefix_name(T112* C){
T0* R=NULL;
{T145*n=malloc(sizeof(*n));
*n=M145;
r145make(n,oBC112tmp_string,r112pos((C)->_li/*4*/,(C)->_co/*8*/));
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_ensure*/
T0*oBC112keyword_p=NULL;
/*No:TMP_NAME.unique_string_memory*/
/*No:TMP_NAME.fz_frozen*/
/*No:TMP_NAME.fz_do*/
/*No:TMP_NAME.co*/
/*No:TMP_NAME.fz_as*/
/*No:TMP_NAME.li*/
T0*oBC112keyword_u=NULL;
/*No:TMP_NAME.fz_then*/
T0* r112to_argument_name1(T112* C){
T0* R=NULL;
{T194*n=malloc(sizeof(*n));
*n=M194;
r194make(n,r112pos((C)->_li/*4*/,(C)->_co/*8*/),oBC112tmp_string);
R=(T0*)n;
}
return R;
}
T0* r112to_infix_name(T0* a1){
T0* R=NULL;
{T141*n=malloc(sizeof(*n));
*n=M141;
r141make(n,oBC112tmp_string,a1);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.us_void*/
/*No:TMP_NAME.fz_true*/
/*No:TMP_NAME.extend*/
/*No:TMP_NAME.fz_rename*/
/*No:TMP_NAME.fz_rescue*/
/*No:TMP_NAME.fz_indexing*/
/*No:TMP_NAME.fz_when*/
T0* r112to_simple_feature_name(T112* C){
T0* R=NULL;
{T151*n=malloc(sizeof(*n));
*n=M151;
r151make(n,oBC112tmp_string,r112pos((C)->_li/*4*/,(C)->_co/*8*/));
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_is*/
T0*oBC112keyword_l=NULL;
T6 r112is_result(void){
T6 R=0;
/*[IF*/
if((((T7*)(oBC112tmp_string))->_count/*4*/)==(6)){
R=r7same_as((T7*)(((T0*)ms14_7404)),oBC112tmp_string);
}
/*FI]*/
return R;
}
/*No:TMP_NAME.fz_elseif*/
T0* r112to_local_name1(T112* C){
T0* R=NULL;
{T187*n=malloc(sizeof(*n));
*n=M187;
r187make(n,r112pos((C)->_li/*4*/,(C)->_co/*8*/),oBC112tmp_string);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_feature*/
/*No:TMP_NAME.fz_debug*/
/*No:TMP_NAME.fz_creation*/
T0*oBC112keyword_c=NULL;
/*No:TMP_NAME.fz_select*/
/*No:TMP_NAME.fz_loop*/
/*No:TMP_NAME.fz_obsolete*/
/*No:TMP_NAME.us_or*/
/*No:TMP_NAME.count*/
/*No:TMP_NAME.fz_alias*/
/*No:TMP_NAME.fz_expanded*/
/*No:TMP_NAME.make*/
T6 r112is_current(void){
T6 R=0;
/*[IF*/
if((((T7*)(oBC112tmp_string))->_count/*4*/)==(7)){
R=r7same_as((T7*)(((T0*)ms14_9380)),oBC112tmp_string);
}
/*FI]*/
return R;
}
/*No:TMP_NAME.us_implies*/
/*No:TMP_NAME.fz_class*/
/*No:TMP_NAME.fz_strip*/
/*No:TMP_NAME.fz_prefix*/
/*No:TMP_NAME.fz_infix*/
T0* r112to_infix_name_use(T112* C){
T0* R=NULL;
{T141*n=malloc(sizeof(*n));
*n=M141;
r141make(n,oBC112tmp_string,r112pos((C)->_li/*4*/,(C)->_co/*8*/));
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_unique*/
T0*oBC112tmp_string=NULL;
/*No:TMP_NAME.fz_export*/
T0*oBC112keyword_r=NULL;
/*No:TMP_NAME.us_precursor*/
/*No:TMP_NAME.fz_variant*/
/*No:TMP_NAME.fz_inherit*/
/*No:TMP_NAME.fz_inspect*/
/*No:TMP_NAME.fz_local*/
/*No:TMP_NAME.us_result*/
T0*oBC112keyword_d=NULL;
/*No:TMP_NAME.fz_all*/
/*No:TMP_NAME.fz_redefine*/
T0* r112to_tag_name(T112* C){
T0* R=NULL;
{T110*n=malloc(sizeof(*n));
*n=M110;
r110make(n,oBC112tmp_string,r112pos((C)->_li/*4*/,(C)->_co/*8*/));
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_separate*/
T0* r112to_e_void(T112* C){
T0* R=NULL;
{T160*n=malloc(sizeof(*n));
*n=M160;
/*[IRF3.3make*/((((T160*)(n)))->_start_position)=(r112pos((C)->_li/*4*/,(C)->_co/*8*/));
/*]*/
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_require*/
T0*oBC112keyword_i=NULL;
/*No:TMP_NAME.fz_retry*/
/*No:TMP_NAME.us_xor*/
/*No:TMP_NAME.fz_invariant*/
T0* r112pos(T2 a1,T2 a2){
T0* R=NULL;
{T59*n=malloc(sizeof(*n));
*n=M59;
r59make(n,a1,a2);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_until*/
T0*oBC112keyword_s=NULL;
/*No:TMP_NAME.us_current*/
T0*oBC112keyword_e=NULL;
void r112initialize(T112* C,T2 a1,T2 a2){
C->_li=a1;
C->_co=a2;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC112tmp_string))))->_count)=(0);
/*]*/
C->_unique_string_memory=NULL;
}
/*No:TMP_NAME.fz_else*/
T0* r112to_local_name2(T112* C,T0* a1,T2 a2){
T0* R=NULL;
{T184*n=malloc(sizeof(*n));
*n=M184;
r184refer_to(n,r112pos((C)->_li/*4*/,(C)->_co/*8*/),a1,a2);
R=(T0*)n;
}
return R;
}
T6 r112isa_keyword(void){
T6 R=0;
T3 _c=0;
_c=r3to_lower(/*(IRF4.6item*/(((T7*)(oBC112tmp_string))->_storage/*0*/)[(1)-(1)]/*)*/);
{int z1=_c;
if((97==z1)){
R=r112look_in(oBC112keyword_a);
}
else
if((99==z1)){
R=r112look_in(oBC112keyword_c);
}
else
if((100==z1)){
R=r112look_in(oBC112keyword_d);
}
else
if((101==z1)){
R=r112look_in(oBC112keyword_e);
}
else
if((102==z1)){
R=r112look_in(oBC112keyword_f);
}
else
if((105==z1)){
R=r112look_in(oBC112keyword_i);
}
else
if((108==z1)){
R=r112look_in(oBC112keyword_l);
}
else
if((111==z1)){
R=r112look_in(oBC112keyword_o);
}
else
if((112==z1)){
R=r112look_in(oBC112keyword_p);
}
else
if((114==z1)){
R=r112look_in(oBC112keyword_r);
}
else
if((115==z1)){
R=r112look_in(oBC112keyword_s);
}
else
if((116==z1)){
R=r112look_in(oBC112keyword_t);
}
else
if((117==z1)){
R=r112look_in(oBC112keyword_u);
}
else
if((118==z1)){
R=r7same_as((T7*)(((T0*)ms13_9506)),oBC112tmp_string);
}
else
if((119==z1)){
R=r7same_as((T7*)(((T0*)ms13_1776)),oBC112tmp_string);
}
else
if((120==z1)){
R=r7same_as((T7*)(((T0*)ms14_1053a)),oBC112tmp_string);
}
}
return R;
}
/*No:TMP_NAME.fz_deferred*/
/*No:TMP_NAME.fz_like*/
T0* r112to_class_name(T112* C){
T0* R=NULL;
{T70*n=malloc(sizeof(*n));
*n=M70;
r70make(n,oBC112tmp_string,r112pos((C)->_li/*4*/,(C)->_co/*8*/));
R=(T0*)n;
}
return R;
}
T0*oBC112keyword_o=NULL;
T0* r112to_argument_name2(T112* C,T0* a1,T2 a2){
T0* R=NULL;
{T192*n=malloc(sizeof(*n));
*n=M192;
r192refer_to(n,r112pos((C)->_li/*4*/,(C)->_co/*8*/),a1,a2);
R=(T0*)n;
}
return R;
}
/*No:TMP_NAME.fz_end*/
/*No:TMP_NAME.fz_undefine*/
T0*oBC112keyword_a=NULL;
T0*oBC112keyword_t=NULL;
/*No:TMP_NAME.fz_external*/
/*No:TMP_NAME.fz_from*/
/*No:TMP_NAME.fz_false*/
T6 r112is_void(void){
T6 R=0;
/*[IF*/
if((((T7*)(oBC112tmp_string))->_count/*4*/)==(4)){
R=r7same_as((T7*)(((T0*)ms14_1648)),oBC112tmp_string);
}
/*FI]*/
return R;
}
/*No:TMP_NAME.us_and*/
T0*oBC112keyword_f=NULL;
/*No:LOOP_VARIANT_1.nb_errors*/
T0* r250start_position(T250* C){
T0* R=NULL;
R=X109start_position((C)->_expression/*8*/);
return R;
}
T0* r250twin(T250* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T250*)R)=*C;
return R;
}
/*No:LOOP_VARIANT_1.expression*/
T6 r250use_current(T250* C){
T6 R=0;
R=X109use_current((C)->_expression/*8*/);
return R;
}
T0* r250to_runnable(T250* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*[IF*/
if(((C)->_current_type/*12*/)==((void*)(NULL))){
C->_current_type=a1;
_e=X109to_runnable((C)->_expression/*8*/,a1);
/*[IF*/
if((_e)==((void*)(NULL))){
r250error(r250start_position(C),((T0*)ms246_20400));
}
else{
C->_expression=_e;
/*[IF*/
if(!(X52is_integer(X109result_type((C)->_expression/*8*/)))){
r250error(X109start_position((C)->_expression/*8*/),((T0*)ms246_86602));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
R=(T0*)C;
}
/*FI]*/
}
else{
R=r250twin(C);
/*[IRF3.3set_current_type*/((((T250*)(((T250*)R))))->_current_type)=(NULL);
/*]*/
R=r250to_runnable(((T250*)R),a1);
}
/*FI]*/
return R;
}
/*No:LOOP_VARIANT_1.set_current_type*/
/*No:LOOP_VARIANT_1.current_type*/
void r250error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r250make(T250* C,T0* a1,T0* a2){
C->_comment=a2;
C->_expression=a1;
}
/*No:LOOP_VARIANT_1.comment*/
void r250afd_check(T250* C){
X109afd_check((C)->_expression/*8*/);
}
/*No:CALL_INFIX_IMPLIES.static_value*/
/*No:CALL_INFIX_IMPLIES.feature_name*/
T6 r116is_static(T116* C){
T6 R=0;
/*[IF*/
if(X52is_boolean(X109result_type((C)->_target/*4*/))){
/*[IF*/
if(X109is_static((C)->_target/*4*/)){
/*[IF*/
if((X109static_value((C)->_target/*4*/))==(0)){
R=1;
C->_static_value_mem=1;
}
else if(X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/)){
R=1;
C->_static_value_mem=X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_IMPLIES.is_manifest_string*/
T0* r116start_position(T116* C){
T0* R=NULL;
R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
T0* r116add_comment(T116* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r116to_integer(T116* C){
T2 R=0;
r116error(r116start_position(C),((T0*)ms13_45846));
return R;
}
T6 r116use_current(T116* C){
T6 R=0;
/*[IF*/
{/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
/*[IF*/
if(R){
}
else if(X109is_current((C)->_target/*4*/)){
R=X27use_current((C)->_run_feature/*16*/);
}
else{
R=X109use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_IMPLIES.jvm_branch_if_true*/
T0* r116to_runnable(T116* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r116runnable_expression((C)->_target/*4*/,a1);
_a=r116runnable_args((C)->_arguments/*8*/,a1);
_tt=X109result_type(_t);
_at=X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r116run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r116run_feature_match(C,a1);
R=(T0*)C;
}
else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T116*n=malloc(sizeof(*n));
*n=M116;
r116with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r116compile_to_jvm_into(T116* C,T0* a1){
T2 R=0;
R=r116standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:CALL_INFIX_IMPLIES.is_pre_computable*/
/*No:CALL_INFIX_IMPLIES.fz_bad_argument*/
/*No:CALL_INFIX_IMPLIES.fz_iinaiv*/
T0* r116result_type(T116* C){
T0* R=NULL;
T0* _tla=NULL;
R=X27result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X52is_like_current(R)){
R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 262:
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_IMPLIES.static_value_mem*/
/*No:CALL_INFIX_IMPLIES.run_feature*/
T0* r116runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r152to_runnable(((T152*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(r152start_position(((T152*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
void r116standard_compile_target_to_jvm(T116* C){
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T116* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
X52jvm_check_class_invariant(r116result_type(C));
}
/*No:CALL_INFIX_IMPLIES.compile_to_jvm_assignment*/
/*No:CALL_INFIX_IMPLIES.fz_07*/
void r116compile_to_jvm_old(T116* C){
X109compile_to_jvm_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
/*No:CALL_INFIX_IMPLIES.jvm_assign*/
/*No:CALL_INFIX_IMPLIES.jvm_branch_if_false*/
/*No:CALL_INFIX_IMPLIES.compile_to_jvm*/
/*No:CALL_INFIX_IMPLIES.arg_count*/
void r116with(T116* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r116run_feature_match(C,a5);
}
/*No:CALL_INFIX_IMPLIES.call_proc_call_c2jvm*/
/*No:CALL_INFIX_IMPLIES.is_result*/
/*No:CALL_INFIX_IMPLIES.fatal_error*/
void r116run_feature_match(T116* C,T0* a1){
r116run_feature_has_result(C);
r152match_with((T152*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_IMPLIES.arguments*/
T0* r116runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X109to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X109start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_IMPLIES.can_be_dropped*/
/*No:CALL_INFIX_IMPLIES.implicit_cast*/
/*No:CALL_INFIX_IMPLIES.compile_target_to_jvm*/
/*No:CALL_INFIX_IMPLIES.isa_dca_inline_argument*/
/*No:CALL_INFIX_IMPLIES.arg1*/
void r116run_feature_has_result(T116* C){
/*[IF*/
if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r21add_position(X27start_position((C)->_run_feature/*16*/));
r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
T2 r116jvm_standard_branch_if_false(T116* C){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T116* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=r28opcode_ifeq((T28*)(oBC12code_attribute));
return R;
}
T0* r116run_feature_for(T116* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type(a1));
R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_IMPLIES.target*/
void r116error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r116make(T116* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T141*n=malloc(sizeof(*n));
*n=M141;
r141make(n,r116operator(),a2);
C->_feature_name=(T0*)n;
}
{T152*n=malloc(sizeof(*n));
*n=M152;
/*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_IMPLIES.is_current*/
/*No:CALL_INFIX_IMPLIES.us_implies*/
T2 r116standard_compile_to_jvm_into(T116* C,T0* a1){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T116* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=X52jvm_convert_to(X52run_type(r116result_type(C)),a1);
return R;
}
/*No:CALL_INFIX_IMPLIES.is_void*/
T0* r116operator(void){
T0* R=NULL;
R=((T0*)ms14_9513);
return R;
}
T2 r116jvm_standard_branch_if_true(T116* C){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T116* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=r28opcode_ifne((T28*)(oBC12code_attribute));
return R;
}
void r116afd_check(T116* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type((C)->_target/*4*/));
_running=(((T23*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X109start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r23set_at_run_time(((T23*)_rc));
}
else if((r340count(((T340*)_running)))>(1)){
r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
}
/*FI]*/
X109afd_check((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152afd_check((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
void r373fall_down(T373* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
T2 _i=0;
T0* _running=NULL;
_current_rc=X52run_class((C)->_current_type/*4*/);
_running=(((T23*)_current_rc))->_running/*12*/;
/*[IF*/
if((_running)!=((void*)(NULL))){
_current_bc=X52base_class((C)->_current_type/*4*/);
_i=(((T340*)_running))->_lower/*12*/;
while (!((_i)>((((T340*)_running))->_upper/*8*/))) {
_sub_rc=r340item(((T340*)_running),_i);
/*[IF*/
if((_sub_rc)!=((void*)(_current_rc))){
_sub_bc=X52base_class((((T23*)_sub_rc))->_current_type/*0*/);
_sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
_rf=r23get_feature(((T23*)_sub_rc),_sub_name);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
/*No:RUN_FEATURE_11.use_current_state*/
/*No:RUN_FEATURE_11.rescue_compound*/
/*No:RUN_FEATURE_11.actuals_clients*/
/*No:RUN_FEATURE_11.ucs_false*/
/*No:RUN_FEATURE_11.is_static*/
T0* r373start_position(T373* C){
T0* R=NULL;
R=r308start_position((T308*)((C)->_base_feature/*32*/));
return R;
}
void r373routine_mapping_jvm(T373* C){
T2 _stack_level=0;
T2 _idx=0;
T0* _ct=NULL;
T0* _rt=NULL;
_ct=(C)->_current_type/*4*/;
r24push_target_as_target((T24*)(oBC12jvm));
_stack_level=-((1)+(r24push_arguments((T24*)(oBC12jvm))));
_rt=(C)->_result_type/*40*/;
/*[IF*/
if((_rt)!=((void*)(NULL))){
_stack_level=(_stack_level)+(X52jvm_stack_space(_rt));
}
/*FI]*/
_idx=r29idx_methodref((T29*)(oBC12constant_pool),(T0*)C);
r23jvm_invoke((T23*)(X52run_class(_ct)),_idx,_stack_level);
}
T6 r373use_current(T373* C){
T6 R=0;
{int z1=(C)->_use_current_state/*28*/;
if((14==z1)){
R=1;
}
else
if((13==z1)){
}
else
if((15==z1)){
C->_use_current_state=16;
/*[IRF3.4compute_use_current*/r373std_compute_use_current(C);
/*]*/
R=r373use_current(C);
}
else {R=1;
}}
return R;
}
/*No:RUN_FEATURE_11.mapping_jvm*/
void r373routine_afd_check(T373* C){
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
r367afd_check((T367*)((C)->_require_assertion/*20*/));
}
/*FI]*/
/*[IF*/
if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
r220afd_check((T220*)((C)->_routine_body/*48*/));
}
/*FI]*/
/*[IF*/
if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
r220afd_check((T220*)((C)->_rescue_compound/*52*/));
}
/*FI]*/
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219afd_check((T219*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
/*No:RUN_FEATURE_11.ucs_not_computed*/
/*No:RUN_FEATURE_11.is_pre_computable*/
void r373std_compute_use_current(T373* C){
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
/*[IF*/
if(r367use_current((T367*)((C)->_require_assertion/*20*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
/*[IF*/
if(r220use_current((T220*)((C)->_routine_body/*48*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
/*[IF*/
if(r220use_current((T220*)((C)->_rescue_compound/*52*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
/*[IF*/
if(r219use_current((T219*)((C)->_ensure_assertion/*24*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
C->_use_current_state=13;
}
/*FI]*/
}
T0* r373run_class(T373* C){
T0* R=NULL;
R=X52run_class((C)->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_11.result_type*/
/*No:RUN_FEATURE_11.base_feature*/
/*No:RUN_FEATURE_11.static_value_mem*/
/*No:RUN_FEATURE_11.ensure_assertion*/
T2 r373jvm_local_variable_offset(T373* C,T0* a1){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
}
/*FI]*/
R=(R)+(r182jvm_offset_of((T182*)((C)->_local_vars/*44*/),a1));
return R;
}
T2 r373arg_count(T373* C){
T2 R=0;
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
}
/*FI]*/
return R;
}
/*No:RUN_FEATURE_11.fz_19*/
T6 r373is_exported_in(T373* C,T0* a1){
T6 R=0;
R=r103gives_permission_to((T103*)(r373clients(C)),a1);
return R;
}
/*No:RUN_FEATURE_11.arguments*/
T2 r373jvm_argument_offset(T373* C,T0* a1){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
R=(R)+(r191jvm_offset_of((T191*)((C)->_arguments/*36*/),a1));
return R;
}
/*No:RUN_FEATURE_11.can_be_dropped*/
void r373initialize(T373* C){
C->_arguments=((T308*)((C)->_base_feature/*32*/))->_arguments/*24*/;
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
/*[IF*/
if(!(r191is_runnable((T191*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
{T191*n=malloc(sizeof(*n));
*n=M191;
r191with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
C->_arguments=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
C->_result_type=X52to_runnable(((T308*)((C)->_base_feature/*32*/))->_result_type/*56*/,(C)->_current_type/*4*/);
C->_local_vars=((T308*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
/*[IF*/
if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
C->_local_vars=r182to_runnable((T182*)((C)->_local_vars/*44*/),(C)->_current_type/*4*/);
}
/*FI]*/
C->_routine_body=((T308*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
/*[IF*/
if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
C->_routine_body=r220to_runnable((T220*)((C)->_routine_body/*48*/),(C)->_current_type/*4*/);
}
/*FI]*/
/*[IF*/
if(r76require_check((T76*)(oBC12run_control))){
C->_require_assertion=r308run_require((T0*)C);
}
/*FI]*/
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
C->_ensure_assertion=r308run_ensure((T0*)C);
}
/*FI]*/
C->_rescue_compound=((T308*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
/*[IF*/
if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
/*[IRF3.3set_used*/((((T362*)((T362*)(oBC12exceptions_handler))))->_used)=(1);
/*]*/
C->_rescue_compound=r220to_runnable((T220*)((C)->_rescue_compound/*52*/),(C)->_current_type/*4*/);
}
/*FI]*/
}
/*No:RUN_FEATURE_11.require_assertion*/
/*No:RUN_FEATURE_11.update_tmp_jvm_descriptor*/
T2 r373jvm_max_locals(T373* C){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
}
/*FI]*/
/*[IF*/
if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
R=(R)+(r182jvm_stack_space((T182*)((C)->_local_vars/*44*/)));
}
/*FI]*/
/*[IF*/
if(((C)->_result_type/*40*/)!=((void*)(NULL))){
R=(R)+(X52jvm_stack_space((C)->_result_type/*40*/));
}
/*FI]*/
return R;
}
void r373jvm_define_opening(T373* C){
T0* _t=NULL;
/*[IF*/
if(((C)->_result_type/*40*/)!=((void*)(NULL))){
_t=X52run_type((C)->_result_type/*40*/);
X52jvm_initialize_local(_t,r373jvm_result_offset(C));
}
/*FI]*/
/*[IF*/
if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
r182jvm_initialize((T182*)((C)->_local_vars/*44*/));
}
/*FI]*/
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219compile_to_jvm_old((T219*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
r367compile_to_jvm((T367*)((C)->_require_assertion/*20*/));
}
/*FI]*/
}
void r373jvm_define_closing(T373* C){
/*[IF*/
if(r76ensure_check((T76*)(oBC12run_control))){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r219compile_to_jvm((T219*)((C)->_ensure_assertion/*24*/),1);
/*[IRF3.4opcode_pop*/r28opcode((T28*)(oBC12code_attribute),87,-(1));
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_result_type/*40*/)!=((void*)(NULL))){
X52jvm_push_local((C)->_result_type/*40*/,r373jvm_result_offset(C));
}
/*FI]*/
}
/*No:RUN_FEATURE_11.clients_memory*/
T0*oBC12exceptions_handler=NULL;
/*No:RUN_FEATURE_11.current_type*/
void r373add_client(T373* C,T0* a1){
T2 _i=0;
/*[IF*/
if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
{T343*n=malloc(sizeof(*n));
*n=M343;
r343with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
}
else{
_i=r343fast_index_of((T343*)((C)->_actuals_clients/*12*/),a1);
/*[IF*/
if((_i)>(((T343*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
}
/*FI]*/
}
/*FI]*/
r23add_client((T23*)(r373run_class(C)),a1);
}
/*No:RUN_FEATURE_11.ucs_in_computation*/
/*No:RUN_FEATURE_11.compute_use_current*/
void r373method_info_start(T373* C){
T2 _flags=0;
_flags=X52jvm_method_flags((C)->_current_type/*4*/);
r39start((T39*)(oBC12method_info),_flags,X50to_key((C)->_name/*16*/),r373jvm_descriptor(C));
}
void r373make(T373* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
/*[IRF3.5add_rf*/r333put(((T333*)(((T23*)(r373run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X50to_key(a2));
/*]*/
r22incr_magic_count((T22*)(oBC12small_eiffel));
C->_use_current_state=15;
r22push((T22*)(oBC12small_eiffel),(T0*)C);
r373initialize(C);
r22pop((T22*)(oBC12small_eiffel));
}
/*No:RUN_FEATURE_11.ucs_true*/
/*No:RUN_FEATURE_11.routine_body*/
void r373jvm_define(T373* C){
r373method_info_start(C);
r373jvm_define_opening(C);
/*[IF*/
if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
r220compile_to_jvm((T220*)((C)->_routine_body/*48*/));
}
/*FI]*/
r373jvm_define_closing(C);
X52jvm_return_code(X52run_type((C)->_result_type/*40*/));
r39finish((T39*)(oBC12method_info));
}
/*No:RUN_FEATURE_11.name*/
/*No:RUN_FEATURE_11.local_vars*/
T2 r373jvm_result_offset(T373* C){
T2 R=0;
R=X52jvm_stack_space((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
}
/*FI]*/
/*[IF*/
if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
R=(R)+(r182jvm_stack_space((T182*)((C)->_local_vars/*44*/)));
}
/*FI]*/
return R;
}
void r373routine_update_tmp_jvm_descriptor(T373* C){
T0* _rt=NULL;
T0* _ct=NULL;
r7extend((T7*)(oBC27tmp_jvm_descriptor),'\50');
_ct=(C)->_current_type/*4*/;
X52jvm_target_descriptor_in(_ct,oBC27tmp_jvm_descriptor);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
r191jvm_descriptor_in((T191*)((C)->_arguments/*36*/),oBC27tmp_jvm_descriptor);
}
/*FI]*/
_rt=(C)->_result_type/*40*/;
/*[IF*/
if((_rt)==((void*)(NULL))){
r7append((T7*)(oBC27tmp_jvm_descriptor),((T0*)ms13_260));
}
else{
_rt=X52run_type(_rt);
r7extend((T7*)(oBC27tmp_jvm_descriptor),'\51');
X52jvm_descriptor_in(_rt,oBC27tmp_jvm_descriptor);
}
/*FI]*/
}
/*No:RUN_FEATURE_11.jvm_field_or_method*/
/*No:RUN_FEATURE_11.afd_check*/
T0* r373clients(T373* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
_bc=X52base_class((C)->_current_type/*4*/);
_bfbc=((T308*)((C)->_base_feature/*32*/))->_base_class/*4*/;
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=((T308*)((C)->_base_feature/*32*/))->_clients/*20*/;
}
else{
R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
}
/*FI]*/
C->_clients_memory=R;
}
else{
R=(C)->_clients_memory/*8*/;
}
/*FI]*/
return R;
}
T0* r373jvm_descriptor(T373* C){
T0* R=NULL;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC27tmp_jvm_descriptor))))->_count)=(0);
/*]*/
/*[IRF3.4update_tmp_jvm_descriptor*/r373routine_update_tmp_jvm_descriptor(C);
/*]*/
R=oBC27tmp_jvm_descriptor;
return R;
}
/*No:PROC_CALL_N.feature_name*/
void r168run_feature_match(T168* C,T0* a1){
r168run_feature_has_no_result(C);
r152match_with((T152*)((C)->_arguments/*16*/),(C)->_run_feature/*12*/,a1);
}
/*No:PROC_CALL_N.arguments*/
T0* r168runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X109to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X109start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
T0* r168start_position(T168* C){
T0* R=NULL;
R=X50start_position((C)->_feature_name/*8*/);
return R;
}
T0* r168add_comment(T168* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
/*AF*/else{
{T229*n=malloc(sizeof(*n));
*n=M229;
r229make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
void r168run_feature_has_no_result(T168* C){
/*[IF*/
if((X27result_type((C)->_run_feature/*12*/))!=((void*)(NULL))){
r21add_position(X27start_position((C)->_run_feature/*12*/));
r21add_position(X50start_position((C)->_feature_name/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms165_67122);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
T6 r168use_current(T168* C){
T6 R=0;
/*[IF*/
if((/*(IRF4.6arg_count*/r152count(((T152*)((C)->_arguments/*16*/)))/*)*/)>(0)){
R=r152use_current((T152*)((C)->_arguments/*16*/));
}
/*FI]*/
/*[IF*/
if(R){
}
else if(X109is_current((C)->_target/*4*/)){
R=X27use_current((C)->_run_feature/*12*/);
}
else{
R=X109use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}
T0* r168to_runnable(T168* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r168runnable_expression((C)->_target/*4*/,a1);
_a=r168runnable_args((C)->_arguments/*16*/,a1);
_rf=r168run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*12*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r168run_feature_match(C,a1);
R=(T0*)C;
}
else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*16*/)))){
R=(T0*)C;
}
else{
{T168*n=malloc(sizeof(*n));
*n=M168;
r168with(n,_t,(C)->_feature_name/*8*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:PROC_CALL_N.is_pre_computable*/
/*No:PROC_CALL_N.fz_bad_argument*/
/*No:PROC_CALL_N.set_run_feature*/
T0* r168run_feature_for(T168* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type(a1));
R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*8*/,a2);
return R;
}
/*No:PROC_CALL_N.target*/
/*No:PROC_CALL_N.run_feature*/
/*No:PROC_CALL_N.end_mark_comment*/
void r168make(T168* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
T0* r168runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r152to_runnable(((T152*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(r152start_position(((T152*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:PROC_CALL_N.fz_07*/
T0* r168make_runnable(T168* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*[IF*/
if(((C)->_run_feature/*12*/)==((void*)(NULL))){
C->_target=a1;
C->_arguments=a2;
C->_run_feature=a3;
R=(T0*)C;
}
else{
{T168*n=malloc(sizeof(*n));
*n=M168;
r168make(n,a1,(C)->_feature_name/*8*/,a2);
R=(T0*)n;
}
/*[IRF3.3set_run_feature*/((((T168*)(((T168*)R))))->_run_feature)=(a3);
/*]*/
}
/*FI]*/
return R;
}
/*No:PROC_CALL_N.compile_to_jvm*/
void r168afd_check(T168* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type((C)->_target/*4*/));
_running=(((T23*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X109start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r23set_at_run_time(((T23*)_rc));
}
else if((r340count(((T340*)_running)))>(1)){
r335update((C)->_target/*4*/,(C)->_run_feature/*12*/);
}
/*FI]*/
X109afd_check((C)->_target/*4*/);
/*[IF*/
if((/*(IRF4.6arg_count*/r152count(((T152*)((C)->_arguments/*16*/)))/*)*/)>(0)){
r152afd_check((T152*)((C)->_arguments/*16*/));
}
/*FI]*/
}
/*No:PROC_CALL_N.arg_count*/
/*No:PROC_CALL_N.call_proc_call_c2jvm*/
void r168with(T168* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r168run_feature_match(C,a5);
}
/*No:PROC_CALL_N.fatal_error*/
/*No:TYPE_EXPANDED.start_position*/
void r279jvm_initialize_local(T279* C,T2 a1){
T0* _rt=NULL;
_rt=(C)->_run_type/*20*/;
/*[IF*/
if(X52is_basic_eiffel_expanded(_rt)){
X52jvm_initialize_local(_rt,a1);
}
else{
r23jvm_expanded_push_default((T23*)(r279run_class(C)));
r279jvm_write_local(C,a1);
}
/*FI]*/
}
void r279used_as_reference(T279* C){
/*[IF*/
if(X52is_expanded((C)->_mapped/*12*/)){
r23used_as_reference((T23*)(r279run_class(C)));
}
/*FI]*/
}
T6 r279is_user_expanded(T279* C){
T6 R=0;
/*[IF*/
if(X52is_basic_eiffel_expanded((C)->_mapped/*12*/)){
}
else{
R=1;
}
/*FI]*/
return R;
}
T2 r279id(T279* C){
T2 R=0;
R=((T23*)(r279run_class(C)))->_id/*4*/;
return R;
}
T6 r279is_pointer(T279* C){
T6 R=0;
R=X52is_pointer((C)->_mapped/*12*/);
return R;
}
/*No:TYPE_EXPANDED.jvm_check_class_invariant*/
T0* r279to_runnable(T279* C,T0* a1){
T0* R=NULL;
T0* _m=NULL;
/*[IF*/
if(((C)->_run_type/*20*/)==((void*)(C))){
R=(T0*)C;
}
else if(((C)->_run_type/*20*/)==((void*)((C)->_mapped/*12*/))){
R=(T0*)C;
}
else{
_m=X52to_runnable((C)->_mapped/*12*/,a1);
/*[IF*/
if((_m)==((void*)(NULL))){
r21add_position((C)->_start_position/*4*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms279_42042);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
/*[IF*/
if(((C)->_run_type/*20*/)!=((void*)(NULL))){
{T279*n=malloc(sizeof(*n));
*n=M279;
r279from_other(n,(T0*)C,X52run_type(_m));
R=(T0*)n;
}
}
else if(X52is_expanded(_m)){
C->_run_type=_m;
C->_run_time_mark=X52run_time_mark(_m);
R=(T0*)C;
}
else if(((C)->_mapped/*12*/)==((void*)(X52run_type(_m)))){
C->_run_time_mark=r279compute_mark(X52run_time_mark(_m));
C->_run_type=(T0*)C;
R=(T0*)C;
}
else{
C->_run_time_mark=r279compute_mark(X52run_time_mark(_m));
{T279*n=malloc(sizeof(*n));
*n=M279;
r279from_other(n,(T0*)C,X52run_type(_m));
C->_run_type=(T0*)n;
}
R=(T0*)C;
}
/*FI]*/
r23set_at_run_time((T23*)(X52run_class((C)->_mapped/*12*/)));
r23set_at_run_time((T23*)(X52run_class((((T279*)R))->_run_type/*20*/)));
}
/*FI]*/
return R;
}
T0* r279run_class(T279* C){
T0* R=NULL;
R=r22run_class((C)->_run_type/*20*/);
return R;
}
void r279standard_jvm_check_class_invariant(T279* C){
/*[IF*/
if(r76invariant_check((T76*)(oBC12run_control))){
r23jvm_check_class_invariant((T23*)(r279run_class(C)));
}
/*FI]*/
}
/*No:TYPE_EXPANDED.is_like_current*/
T6 r279is_bit(T279* C){
T6 R=0;
R=X52is_bit((C)->_mapped/*12*/);
return R;
}
void r279jvm_write_local(T279* C,T2 a1){
T0* _rt=NULL;
_rt=(C)->_run_type/*20*/;
/*[IF*/
if(X52is_basic_eiffel_expanded(_rt)){
X52jvm_write_local(_rt,a1);
}
else{
r28opcode_astore((T28*)(oBC12code_attribute),a1);
}
/*FI]*/
}
T0* r279smallest_ancestor(T279* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((C)->_run_time_mark/*16*/)==((void*)(X52run_time_mark(a1)))){
R=(C)->_run_type/*20*/;
}
else{
R=X52run_type(X52smallest_ancestor((C)->_mapped/*12*/,a1));
}
/*FI]*/
return R;
}
/*No:TYPE_EXPANDED.fatal_error*/
/*No:TYPE_EXPANDED.run_time_mark*/
/*No:TYPE_EXPANDED.is_expanded*/
/*No:TYPE_EXPANDED.jvm_if_x_eq*/
void r279jvm_xnewarray(T279* C){
T0* _rt=NULL;
T2 _idx=0;
_rt=(C)->_run_type/*20*/;
/*[IF*/
if(X52is_basic_eiffel_expanded(_rt)){
X52jvm_xnewarray(_rt);
}
else{
_idx=r23jvm_constant_pool_index((T23*)(r279run_class(C)));
r28opcode_anewarray((T28*)(oBC12code_attribute),_idx);
}
/*FI]*/
}
/*No:TYPE_EXPANDED.jvm_push_local*/
/*No:TYPE_EXPANDED.fz_dot*/
/*No:TYPE_EXPANDED.is_like_feature*/
T6 r279is_a(T279* C,T0* a1){
T6 R=0;
R=X52is_a((C)->_mapped/*12*/,a1);
/*[IF*/
if(!(R)){
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
r21add_type((T0*)C,((T0*)ms13_17730));
r21add_type(a1,((T0*)ms13_47));
}
/*FI]*/
return R;
}
/*No:TYPE_EXPANDED.written_mark*/
T6 r279is_character(T279* C){
T6 R=0;
R=X52is_character((C)->_mapped/*12*/);
return R;
}
/*No:TYPE_EXPANDED.fz_expanded*/
void r279make(T279* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_mapped=a2;
C->_written_mark=r279compute_mark(X52written_mark((C)->_mapped/*12*/));
}
T2 r279jvm_convert_to(T279* C,T0* a1){
T2 R=0;
/*[IF*/
if(X52is_reference(a1)){
r279jvm_to_reference(C);
}
/*FI]*/
R=1;
return R;
}
/*No:TYPE_EXPANDED.is_array*/
T2 r279jvm_push_default(T279* C){
T2 R=0;
T0* _rt=NULL;
_rt=(C)->_run_type/*20*/;
/*[IF*/
if(X52is_basic_eiffel_expanded(_rt)){
R=r279jvm_push_default(C);
}
else{
r23jvm_expanded_push_default((T23*)(r279run_class(C)));
R=1;
}
/*FI]*/
return R;
}
T6 r279is_dummy_expanded(T279* C){
T6 R=0;
/*[IF*/
if(r279is_user_expanded(C)){
R=(r23writable_attributes((T23*)(r279run_class(C))))==((void*)(NULL));
}
/*FI]*/
return R;
}
T0* r279generic_list(T279* C){
T0* R=NULL;
R=X52generic_list((C)->_mapped/*12*/);
return R;
}
T0* r279base_class(T279* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r279base_class_name(C);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r70base_class(((T70*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}
/*No:TYPE_EXPANDED.jvm_if_x_ne*/
T0* r279base_class_name(T279* C){
T0* R=NULL;
R=X52base_class_name((C)->_mapped/*12*/);
return R;
}
void r279jvm_standard_is_equal(T279* C){
T0* _wa=NULL;
T0* _rc=NULL;
_rc=r279run_class(C);
_wa=r23writable_attributes(((T23*)_rc));
r24std_is_equal(_rc,_wa);
}
/*No:TYPE_EXPANDED.is_formal_generic*/
T6 r279is_a_in(T279* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((C)->_written_mark/*8*/)==((void*)(X52written_mark(a1)))){
R=1;
}
else{
_ct=(((T23*)a2))->_current_type/*0*/;
_t1=r279to_runnable(C,_ct);
_t2=X52to_runnable(a1,_ct);
/*[IF*/
if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
R=1;
}
else{
R=X52is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r279look_up_for(T279* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r279base_class(C)),a1,a2);
return R;
}
void r279jvm_to_reference(T279* C){
T0* _wa=NULL;
/*[IF*/
if(X52is_expanded((C)->_mapped/*12*/)){
r23jvm_to_reference((T23*)(r279run_class(C)));
}
else{
r23jvm_basic_new((T23*)(X52run_class((C)->_mapped/*12*/)));
_wa=r23writable_attributes((T23*)(r279run_class(C)));
/*[IRF3.4opcode_swap*/r28opcode((T28*)(oBC12code_attribute),95,0);
/*]*/
r24fields_by_fields_copy(_wa);
}
/*FI]*/
}
/*No:TYPE_EXPANDED.run_type*/
T0* r279expanded_initializer(T279* C){
T0* R=NULL;
R=r63expanded_initializer((T63*)(r279base_class(C)),(T0*)C);
return R;
}
T6 r279has_creation(T279* C,T0* a1){
T6 R=0;
R=r63has_creation((T63*)(r279base_class(C)),a1);
return R;
}
/*No:TYPE_EXPANDED.jvm_method_flags*/
T6 r279is_boolean(T279* C){
T6 R=0;
R=X52is_boolean((C)->_mapped/*12*/);
return R;
}
T6 r279is_generic(T279* C){
T6 R=0;
R=X52is_generic((C)->_mapped/*12*/);
return R;
}
/*No:TYPE_EXPANDED.jvm_xaload*/
T6 r279is_real(T279* C){
T6 R=0;
R=X52is_real((C)->_mapped/*12*/);
return R;
}
T0* r279compute_mark(T0* a1){
T0* R=NULL;
r7copy((T7*)(oBC279tmp_written_mark),((T0*)ms13_10840));
r7extend((T7*)(oBC279tmp_written_mark),'\40');
r7append((T7*)(oBC279tmp_written_mark),a1);
R=r86item(oBC279tmp_written_mark);
return R;
}
/*No:TYPE_EXPANDED.is_any*/
T6 r279is_basic_eiffel_expanded(T279* C){
T6 R=0;
/*[IF*/
if(((C)->_run_type/*20*/)==((void*)((C)->_mapped/*12*/))){
R=X52is_basic_eiffel_expanded((C)->_mapped/*12*/);
}
/*FI]*/
return R;
}
/*No:TYPE_EXPANDED.jvm_descriptor_in*/
/*No:TYPE_EXPANDED.is_string*/
T6 r279is_native_array(T279* C){
T6 R=0;
T0* _tna=NULL;
_tna=(T0*)C;
if(NULL!=(_tna))switch(((T0*)_tna)->id) {
case 267:
break;
default:
_tna=NULL;
};R=(_tna)!=((void*)(NULL));
return R;
}
T6 r279is_integer(T279* C){
T6 R=0;
R=X52is_integer((C)->_mapped/*12*/);
return R;
}
/*No:TYPE_EXPANDED.is_anchored*/
/*No:TYPE_EXPANDED.is_run_type*/
void r279from_other(T279* C,T0* a1,T0* a2){
C->_start_position=(((T279*)a1))->_start_position/*4*/;
C->_written_mark=(((T279*)a1))->_written_mark/*8*/;
C->_mapped=a2;
/*[IF*/
if(X52is_expanded((C)->_mapped/*12*/)){
C->_run_time_mark=X52run_time_mark((C)->_mapped/*12*/);
C->_run_type=(C)->_mapped/*12*/;
}
else{
C->_run_time_mark=r279compute_mark(X52run_time_mark((C)->_mapped/*12*/));
C->_run_type=(T0*)C;
}
/*FI]*/
}
/*No:TYPE_EXPANDED.mapped*/
/*No:TYPE_EXPANDED.is_reference*/
T0*oBC279tmp_written_mark=NULL;
/*No:TYPE_EXPANDED.is_none*/
/*No:TYPE_EXPANDED.jvm_return_code*/
/*No:TYPE_EXPANDED.jvm_target_descriptor_in*/
/*No:TYPE_EXPANDED.fz_inako*/
/*No:TYPE_EXPANDED.jvm_xastore*/
/*No:TYPE_EXPANDED.is_like_argument*/
T2 r279jvm_stack_space(T279* C){
T2 R=0;
/*[IF*/
if(r279is_double(C)){
R=2;
}
else{
R=1;
}
/*FI]*/
return R;
}
T6 r279is_double(T279* C){
T6 R=0;
R=X52is_double((C)->_mapped/*12*/);
return R;
}
T2 r279jvm_expanded_from_reference(T0* a1){
T2 R=0;
return R;
}
T2 r148static_value(T148* C){
T2 R=0;
/*[IF*/
if(X52is_boolean(X109result_type((C)->_target/*4*/))){
/*[IF*/
if(X109is_static((C)->_target/*4*/)){
/*[IF*/
if((X109static_value((C)->_target/*4*/))==(0)){
R=1;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_PREFIX_NOT.feature_name*/
T6 r148is_static(T148* C){
T6 R=0;
/*[IF*/
if(X52is_boolean(X109result_type((C)->_target/*4*/))){
/*[IF*/
if(X109is_static((C)->_target/*4*/)){
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_PREFIX_NOT.is_manifest_string*/
T0* r148start_position(T148* C){
T0* R=NULL;
R=((T145*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
T0* r148add_comment(T148* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r148to_integer(T148* C){
T2 R=0;
T0* _rf1=NULL;
_rf1=(C)->_run_feature/*8*/;
if(NULL!=(_rf1))switch(((T0*)_rf1)->id) {
case 372:
break;
default:
_rf1=NULL;
};/*[IF*/
if((_rf1)==((void*)(NULL))){
r148error(r148start_position(C),((T0*)ms13_45846));
}
else{
R=X109to_integer((((T372*)_rf1))->_value/*36*/);
}
/*FI]*/
return R;
}